package com.example.myproject.zebra.sdk;

import com.zebra.sdk.comm.Connection;
import com.zebra.sdk.comm.TcpConnection;
import com.zebra.sdk.printer.PrinterLanguage;
import com.zebra.sdk.printer.ZebraPrinter;
import com.zebra.sdk.printer.ZebraPrinterFactory;

public class SdkUser3 {
    private static ZebraPrinter zebraPrinter;
    public static void main(String[] args) throws  Exception {
        //1.创建连接
        String  PRINT_IP ="111";
        int PRINT_PORT = 0;
        Connection  connection = new TcpConnection(PRINT_IP, PRINT_PORT);

       // 2.打开连接并且创建打印机实例（ZebraPrinterFactory是ZSDK_ANDROID_API.jar提供）。
        connection.open();
        zebraPrinter = ZebraPrinterFactory.getInstance(connection);

        //3.获取打印机控制语言（一般为CPCL或ZPL）
        PrinterLanguage pl = zebraPrinter.getPrinterControlLanguage();

        zebraPrinter.sendCommand("command");
        //针对不同的语言编写对应的打印指令，下面简单介绍一下语法：
    }


    /**
     * ^XA              指令块的开始
     * ^MD              设置色带颜色的深度,取值范围从-30到30,上面的示意指令将颜色调到了最深.
     * ^LH              设置条码纸的边距的.
     * ^CF              改变字符字体默认字体
     */

    private static String lableStart_ZPL(int md,int x,int y){
        String strLable="^XA"+"^CF0,15,7"+ "^MD"+String.valueOf(md)+ "^LH"+String.valueOf(x)+","+String.valueOf(y);
        return strLable;
    }

    /**
     *AD 是什么
     * @param x           起始水平坐标
     * @param y           起始垂直坐标
     * @param strValue    内容
     * @return
     */
    private static String printText_ZPL(int x,int y,String strValue) {
        String strText = "^FO"+String.valueOf(x)+","+String.valueOf(y)+
                "^AD" +
                "^FD"+ strValue + "^FS";
        return strText;
    }

    /**
     * ^FO20,10              ^FO是设置条码左上角的位置的,0,0代表完全不留边距.
     * ^ACN,18,10            ^ACN是设置字体的.因为在条码下方会显示该条码的内容,所以要设一下字体.这个跟条码无关.
     * ^BY2,3,50           ^BY是设置条码样式的,1.4是条码的宽度，3是条码中粗细柱的比例（接受的值2.0到3.0）,50是条码高度.
     * ^BCN,,Y,N             ^BC是打印code128的指令,具体参数详见ZPL的说明书(百度云盘)
     * ^FD01008D004Q-0^FS    ^FD设置要打印的内容, ^FS表示换行.
     */
    private static String printCode128_ZPL(int x,int y,int height,String strValue){
        String strBarCode = "^FO"+String.valueOf(x)+","+String.valueOf(y)+
                "^BC"+"N"+","+String.valueOf(height)+",N,N,N" +
                "^FD" + strValue + "^FS";
        return strBarCode;
    }



    private static String lableEnd_ZPL(){
        String strBarCode = "^XZ" ;
        return strBarCode;
    }
}
